home *** CD-ROM | disk | FTP | other *** search
/ Delphi Informant Complete 1995 - 2000 / Delphi Informant Complete 1995 to 2000.iso / Delphi Informant Magazine Complete Works SOURCE CODE 1998.rar / 1998 / Sep / di9809jp / BlastClient / main.pas < prev    next >
Pascal/Delphi Source File  |  1998-03-05  |  3KB  |  120 lines

  1. unit main;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  7.   StdCtrls, Buttons, ComCtrls, Winsock2, Mask;
  8.  
  9.  
  10. const
  11.  
  12.    MultiCastAddr = '234.5.6.7';
  13.    BlastCastPort = 9500;
  14.    BlastCastTTL  = 2;
  15.    LoopBack      = TRUE;
  16.    ReUse         = TRUE;
  17.    UseWS2        = FALSE;
  18.  
  19. type
  20.   TfrmMain = class(TForm)
  21.     pcBlastClient: TPageControl;
  22.     tsMsg: TTabSheet;
  23.     tsSetUp: TTabSheet;
  24.     bbtnStart: TBitBtn;
  25.     bbtnStop: TBitBtn;
  26.     bbtnAbout: TBitBtn;
  27.     gbPort: TGroupBox;
  28.     edPort: TEdit;
  29.     udPort: TUpDown;
  30.     gbMultiCastAddr: TGroupBox;
  31.     bbtnExit: TBitBtn;
  32.     gbUseWS2MC: TGroupBox;
  33.     ckbWS2: TCheckBox;
  34.     gbStatusMsg: TGroupBox;
  35.     memStatusMsg: TMemo;
  36.     gbMessages: TGroupBox;
  37.     memMsg: TMemo;
  38.     edMCAddr: TEdit;
  39.     procedure bbtnStopClick(Sender: TObject);
  40.     procedure bbtnStartClick(Sender: TObject);
  41.     procedure FormCreate(Sender: TObject);
  42.     procedure bbtnExitClick(Sender: TObject);
  43.     procedure bbtnAboutClick(Sender: TObject);
  44.   private
  45.   end;
  46.  
  47. var
  48.   frmMain: TfrmMain;
  49.  
  50. implementation
  51.  
  52. {$R *.DFM}
  53. uses
  54.  ListenThrd, About;
  55.  
  56. procedure TfrmMain.bbtnStopClick(Sender: TObject);
  57. begin
  58. // leave the multicast group
  59.  if thrdListen <> NIL then
  60.  begin
  61.   thrdListen.CloseSession;
  62.   bbtnStart.Enabled := TRUE;
  63.   bbtnStop.Enabled  := FALSE;
  64.  end;
  65. end;
  66.  
  67. procedure TfrmMain.bbtnStartClick(Sender: TObject);
  68. var
  69.  Position : Integer;
  70.  WorkStr : String;
  71. begin
  72.  with Options do
  73.  begin
  74.   WorkStr := edPort.Text;
  75.   Position  := Pos(',',WorkStr);
  76.   if Position > 0 then
  77.    delete(WorkStr,Position,1);
  78.   Port      := StrToInt(WorkStr);
  79.   Address   := edMCAddr.Text;
  80.   UseWS2    := ckbWS2.Checked;
  81.  end;
  82.  bbtnStart.Enabled   := FALSE;
  83.  bbtnStop.Enabled    := TRUE;
  84.  thrdListen          := TListenThrd.Create(Options);
  85.  frmMain.WindowState := wsMinimized;
  86. end;
  87.  
  88. procedure TfrmMain.FormCreate(Sender: TObject);
  89. begin
  90.  memMsg.Clear;
  91.  memStatusMsg.Clear;
  92.  edPort.Text         := IntToStr(BlastCastPort);
  93.  udPort.Position     := BlastCastPort;
  94.  edMCAddr.Text   := MultiCastAddr;
  95.  ckbWS2.Checked      := UseWS2;
  96.  with Options do
  97.  begin
  98.   Port      := StrToInt(edPort.Text);
  99.   Address   := edMCAddr.Text;
  100.   UseWS2    := ckbWS2.Checked;
  101.  end;
  102. end;
  103.  
  104. procedure TfrmMain.bbtnExitClick(Sender: TObject);
  105. begin
  106.  Close;
  107. end;
  108.  
  109. procedure TfrmMain.bbtnAboutClick(Sender: TObject);
  110. begin
  111.  try
  112.   frmAbout := TFrmAbout.Create(NIL);
  113.   frmAbout.ShowModal;
  114.  finally
  115.   frmAbout.Free;
  116.  end;
  117. end;
  118.  
  119. end.
  120.